import router from './router'
import store from './store'
import {
    Message
} from 'element-ui'
import NProgress from 'nprogress' // progress bar
import 'nprogress/nprogress.css' // progress bar style
import {
    getToken
} from '@/utils/auth' // get token from cookie
import getPageTitle from '@/utils/get-page-title'
import { menu } from '@/utils/menu'
NProgress.configure({
    showSpinner: false
}) // NProgress Configuration

const whiteList = ['/login'] // no redirect whitelist

let arr = JSON.parse(localStorage.getItem('menu'))
if(arr){
    router.options.routes = menu(router.options.routes, arr)
    router.constantRoutes = router.options.routes
}
console.log(router.options.routes,"#$%", router);

router.beforeEach(async (to, from, next) => {
    console.log(22, to, from)

    // let newRoutes = router.options.routes
    // newRoutes.forEach(item => {
    //     item.children.forEach(row => {
    //         if (row.meta.title == to.meta.title) {
    //             to.meta.uniqueKey = row.meta.uniqueKey
    //         }
    //     })

    //     if (item.meta.title == to.meta.title) {
    //         to.meta.uniqueKey = item.meta.uniqueKey
    //         item.children.forEach(row => {
    //         if (row.meta.title == to.meta.title) {
    //                 to.meta.uniqueKey = row.meta.uniqueKey
    //             }
    //         })
    //     }
        
    // });

    // start progress bar
    NProgress.start()
    // set page title
    document.title = getPageTitle(to.meta.title)
    // determine whether the user has logged in
    const hasToken = getToken()
    if (hasToken) {
        console.log(34, to)
        if (to.path === '/login') {
            // if is logged in, redirect to the home page
            next({
                path: '/index'
            })
            NProgress.done()
        } else {
            next()
        }
    } else {
        /* has no token*/
        if (whiteList.indexOf(to.path) !== -1) {
            // in the free login whitelist, go directly
            next()
        } else {
            // other pages that do not have permission to access are redirected to the login page.
            next(`/login`)
            NProgress.done()
        }
    }
})

router.afterEach(() => {
    // finish progress bar
    NProgress.done()
})